package com.todo.member.infrastructure.mapper;

import com.todo.member.infrastructure.entity.po.MemberVipInfoPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author azhebuxing
 * @date 2025/1/21 16:22
 * @description
 */
@Mapper
public interface MemberVipInfoMapper {

    List<MemberVipInfoPO> queryMemberVipInfoPOByVipCode(@Param("vipCode") String vipCode);

    Boolean insertMemberVipInfoPO(MemberVipInfoPO memberVipInfoPO);

    Boolean removeMemberVipInfoPOById(@Param("id") Long id);

    MemberVipInfoPO queryMemberVipInfoPOById(@Param("id") Long id);

    MemberVipInfoPO queryMemberVipInfoPOByName(@Param("name") String name);

    Boolean updateMemberVipInfoStatusById(@Param("id") Long id, @Param("oldStatus") int oldStatus, @Param("newStatus") int newStatus);

    MemberVipInfoPO queryEffectiveMemberVipInfoByVipType(@Param("vipType") Integer vipType, @Param("successStatus") int successStatus);

    List<MemberVipInfoPO> queryMemberVipInfoListByVipType(@Param("vipType") Integer vipType);

    MemberVipInfoPO queryMemberVipInfoByVipCode(@Param("vipCode") String vipCode, @Param("version") Integer version);

    List<MemberVipInfoPO> queryMemberVipInfoListByVipCode(@Param("vipCode") String vipCode);

    List<MemberVipInfoPO> queryEffectiveMemberVipInfoList();
}
